package com.think.admin.web.service;

import com.think.admin.model.param.resource.ResourceParam;
import com.think.admin.model.param.resource.ResourceUpdateParentIdParam;
import com.think.admin.model.query.ResourceQuery;
import com.think.common.param.UpdateBatchParam;
import com.think.common.web.service.ISuperService;
import com.think.dao.entity.Resource;
import org.springframework.http.HttpEntity;

import java.util.List;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author xwj
 * @since 2019-04-08
 */
public interface IResourceService extends ISuperService<Resource> {
    
    /** 
     * 查询
     *
     * @param resourceQuery 
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @date 2019/4/25
     */ 
    HttpEntity selectResource(ResourceQuery resourceQuery);

    /**
     * 新增或修改
     *
     * @param resourceParam
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @date 2019/4/25
     */
    HttpEntity createOrUpdate(ResourceParam resourceParam);

    /**
     * 删除
     *
     * @param idList
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @date 2019/4/25
     */
    HttpEntity delete(List<String> idList);

    /** 
     * 更新状态
     *
     * @param updateBatchParam 
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @date 2019/4/25
     */ 
    HttpEntity updateState(UpdateBatchParam updateBatchParam);

    /**
     * 更新上级
     *
     * @param resourceUpdateParentIdParam
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @data 2019/5/3
     */
    HttpEntity updateResourceParent(ResourceUpdateParentIdParam resourceUpdateParentIdParam) ;

    /**
     * 刷新资源
     *
     * @param
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @data 2019/5/3
     */
    HttpEntity refreshResource();

    /**
     * 根据 id 查询资源
     *
     * @param id
     * @return org.springframework.http.HttpEntity
     * @author xwj
     * @data 2019/5/2
     */
    HttpEntity getResource(String id);
}
